Naivna gramatika:
----------------------------------------------------
niz_naredbi: niz_naredbi naredba
    | naredba
    ;
naredba: DEF_T ID_T '=' E ';'
    | PRINT_T '(' E ')' ';'
    | ID_T '=' E ';'
    ;
E -> E + T
    | E - T
    | T
    ;
T -> T * F
    | T / F
    | F
    ;
F -> '(' E ')'
    | razlomak
    | ID_T
    | '-' F
    | '~' F
    | BROJ_T
    ;
razlomak: '<' broj , BROJ_T '>'
    ;
broj: BROJ_T
    | '-' BROJ_T
    ;

Eliminacija leve rekurzije:
----------------------------------------------------------
niz_naredbi: naredba niz_naredbiP           DEF_T, PRINT_T, ID_T 
    ;
niz_naredbiP: naredba niz_naredbiP          DEF_T, PRINT_T, ID_T 
    | eps                                   EOI
    ;
naredba: DEF_T ID_T '=' E ';'               DEF_T       { symbol[ID_T] = E.sin;}
    | PRINT_T '(' E ')' ';'                 PRINT_T     { print(E.sin); }
    | ID_T '=' E ';'                        ID_T        { symbol[ID_T] = E.sin; }
    ;
E -> T EP                                   '(', '<', '-', '~', BROJ_T, ID_T    EP.inh = T.sin; E.sin = EP.sin;
    ;
EP1 -> + T EP1                              '+'                     EP2.inh = EP1.inh + T.sin; EP1.sin = EP2.sin;
    | - T EP1                               '-'                     EP2.inh = EP1.inh - T.sin; EP1.sin = EP2.sin;
    | eps                                   ')', ';'                EP1.sin = EP1.inh;
    ;
T -> F TP                                   '(', '<', '-', '~', BROJ_T, ID_T    TP.inh = F.sin; T.sin = TP.sin; 
    ;   
TP1 -> * F TP2                              '*'                     TP2.inh = TP1.inh * F.sin; TP1.sin = TP2.sin;
    | / F TP2                               '/'                     TP2.inh = TP1.inh / F.sin; TP1.sin = TP2.sin;
    | eps                                   ')', ';', '+', '-'      TP1.sin = TP1.inh;
    ;
F1 -> '(' E ')'                             '('         F1.sin = E.sin
    | razlomak                              '<'         F1.sin = razloma.sin;
    | ID_T                                  ID_T        F1.sin = symbol(ID_T).val;
    | '-' F2                                '-'         F1.sin = -F2.sin;
    | '~' F2                                '~'         F1.sin = ~F2.sin;
    | BROJ_T                                BROJ_T      F1.sin = BROJ_T.val
    ;
razlomak: '<' broj , BROJ_T '>'             '<'         razlomak.sin = <broj.sin, BROJ_T.val>  
    ;
broj: BROJ_T                                BROJ_T      broj.sin = BROJ_T.val
    | '-' BROJ_T                            '-'         broj.sin = - BROJ_T.val
    ;

Pravilo         | First                             | Eps   | Follow
-----------------------------------------------------------------------------------
niz_naredbi     | DEF_T, PRINT_T, ID_T              | /     | EOI
-----------------------------------------------------------------------------------
niz_naredbiP    | DEF_T, PRINT_T, ID_T              | Da    | EOI
-----------------------------------------------------------------------------------
naredba         | DEF_T, PRINT_T, ID_T              | /     | DEF_T, PRINT_T, ID_T, EOI
-----------------------------------------------------------------------------------
E               | '(', '<', '-', '~', BROJ_T, ID_T  | /     | ')', ';'
-----------------------------------------------------------------------------------
EP              | '+', '-'                          | Da    | ')', ';' 
-----------------------------------------------------------------------------------
T               | '(', '<', '-', '~', BROJ_T, ID_T  | /     | ')', ';', '+', '-'
-----------------------------------------------------------------------------------
TP              | '*', '/'                          | Da    | ')', ';', '+', '-'
-----------------------------------------------------------------------------------
F               | '(', '<', '-', '~', BROJ_T, ID_T  | /     | ')', ';', '+', '-', '*', '/'
-----------------------------------------------------------------------------------
razlomak        | '<'                               | /     | ')', ';', '+', '-', '*', '/'
-----------------------------------------------------------------------------------
broj            | BROJ_T, '-'                       | /     | ','
-----------------------------------------------------------------------------------